Arbitrated ad consumption

ABSTRACT

Some aspects may include determining whether to allow a skip over a portion of required content based on the amount of time elapsed since a portion of required content was played. The amount of time elapsed since a portion of required content was played may be measured based on the sum time of content played, or may be based on the amount of wall time elapsed. The determination of whether to allow a skip over a portion of required content may be made based on comparing the amount of time elapsed since a portion of required content was played to a threshold amount of time. Some aspects may allow free navigation within content if the amount of time elapsed is less than the threshold, and may restrict navigation or require playback of required content if the amount of time elapsed is greater than the threshold.

CROSS REFERENCE TO RELATED APPLICATION

This application claims the benefit of U.S. Provisional Application No.61/813,571, filed Apr. 18, 2013, which is incorporated herein byreference.

BACKGROUND

Advertisers desire users to watch all advertisements in video content,and users often do not desire to watch any advertisements in videocontent. If users watch fewer advertisements in video content,advertiser-sponsored video content suffers. If users are shown too manyadvertisements, user viewing may suffer. Thus, a balance needs to bearbitrated between the needs of the user and the needs of theadvertisers.

SUMMARY

The following summary is for illustrative purposes only, and is notintended to limit or constrain the detailed description. Aspects hereinenable different techniques for interacting with users. In some aspects,some content may be marked as required content. Required content mayinclude advertisements, video clips, video-on-demand content, or anyother type of content. A user's ability to interact with or controlrequired content may be different than the user's ability to interactwith or control other content. For example, in one aspect, a user may“jump” over certain video content or advertisements, while beingrequired to watch other video content or advertisements.

Some other systems may show required content to a user every time theuser encounters the required content during playback. For example, if auser partially watched a video program, then some time later wished toresume the video program, the video program may begin playback at thebeginning The user may wish to skip ahead to only view the portion ofthe video program that the user has not yet watched. But to skip aheadto only view the portion of the video program that the user has not yetwatched, the user may attempt to skip past several portions of the videocontent where the video would normally play required content. Forexample, a video may be marked to play advertisements every sevenminutes. If the user attempts to resume playback 25 minutes into a 60minute video program, the user may attempt to skip past threeadvertisement segments—one at 7 minutes, one at 14 minutes, and one at21 minutes. The user may be frustrated at being required to watch threeadvertisement segments in a row when the user is simply trying tonavigate forward to only watch a previously-unwatched portion of avideo.

Thus, in some aspects, the system may track an amount of time a user hasspent watching a program without required content (e.g., advertisements)in order to determine if watching additional required content is needed.For example, after initiating a playback session, or after watchingrequired content, a user may be given a period of time when the user cannavigate freely through a video (e.g., fast forward, rewind, jump ahead)without being shown required content. The period of time when the usercan navigate freely through a video may be known as a free-pass period.

In some aspects, a timestamp or other indicator may be stored when auser begins watching content, or when the user watches an advertisement.The user may be given a visual indicator of the free-pass period. Forexample, watching the required content (e.g., an advertisement) maycause a window to open that allows the user to fast forward throughother advertisements until such time as the window closes (e.g., 5-10minutes). Thereafter, the user may not be able to fast forward throughadvertisements until the user has watched another segment or requiredcontent such as one or more advertisements.

Some aspects may allow a user a larger free-pass period (and thereforehave an opportunity to skip advertisements) based on a subscription fee,a higher tier of service, bundled services, promotions, or the userproviding information about herself. Still additional aspects may allowa dynamic free-pass period to grow based on certain activities of theuser (e.g., the user may earn credits based on their behavior). Forexample, there may be incentive options that allow a user to increasetheir free-pass period such as: completing a survey, reviewing certainmaterial, interacting with an advertisement, clicking on certain contentsuch as an interactive advertisement or show website, or selecting acategory of advertisements the viewer is most interested in watching.For example, if a customer indicates that the user is interested in newvehicles, SUV or cross-over vehicles, and Ford vehicles, the user may beprovided with more free-pass time, while the system provides moretargeted advertisements.

Some aspects may adjust the free-pass period based on the method inwhich a user watched required content. For example, if a user watches anadvertisement at normal speed, the free-pass period may be larger thanif a user watches an advertisement at an accelerated speed. A user maybe given a larger free-pass period for watching an advertisement at anaccelerated speed than for skipping an advertisement altogether. If awatches an advertisement more than once (e.g., rewinds and replays theadvertisement), a free-pass period may be larger.

Free-pass time may be configured in different ways. In some embodiments,free-pass time may elapse or count down when a user is watching videocontent such as video-on-demand content. Additionally, allowing the userto fast-forward during a free-pass period or jump over advertisementsmay give the user an incentive to provide additional information thatmay facilitate more targeted advertisements. Additionally, in someaspects, the user may be given a choice over what advertisements theuser may watch, e.g., when the user watches advertisements. If the usermakes a proactive user selection, the user may be more likely to engagewith the ad material, and therefore may receive a larger free-passperiod.

The preceding presents a simplified summary in order to provide a basicunderstanding of some aspects of the disclosure. The summary is not anextensive overview of the disclosure. It is neither intended to identifykey or critical elements of the disclosure nor to delineate the scope ofthe disclosure. The summary merely presents some concepts of thedisclosure in a simplified form as a prelude to the description below.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features, aspects, and advantages of the presentdisclosure will become better understood with regard to the followingdescription, claims, and drawings. The present disclosure is illustratedby way of example, and not limited by, the accompanying drawings inwhich like numerals indicate similar elements.

FIG. 1 illustrates an example communication network on which variousfeatures described herein may be implemented.

FIG. 2 illustrates an example computing device that can be used toimplement any of the system, methods, servers, entities, and computingdevices described herein.

FIG. 3 illustrates a flowchart for implementing one example algorithmfor implementing arbitrated ad consumption.

FIG. 4 illustrates an example flow diagram for implementing arbitratedad consumption.

FIGS. 5A-C illustrate examples of code for implementing arbitrated adconsumption.

DETAILED DESCRIPTION

In the following description of various illustrative embodiments,reference is made to the accompanying drawings, which form a parthereof, and in which is shown, by way of illustration, variousembodiments in which aspects of the disclosure may be practiced. It isto be understood that other embodiments may be utilized, and structuraland functional modifications may be made, without departing from thescope of the present disclosure.

FIG. 1 illustrates an example communication network 100 on which many ofthe various features described herein may be implemented. Network 100may be any type of information distribution network, such as satellite,telephone, cellular, wireless, etc. One example may be an optical fibernetwork, a coaxial cable network, or a hybrid fiber/coax distributionnetwork. Such networks 100 use a series of interconnected communicationlinks 101 (e.g., coaxial cables, optical fibers, wireless, etc.) toconnect multiple premises 102 (e.g., businesses, homes, consumerdwellings, etc.) to a local office or headend 103. The local office 103may transmit downstream information signals onto the links 101, and eachpremises 102 may have a receiver used to receive and process thosesignals.

There may be one link 101 originating from the local office 103, and itmay be split a number of times to distribute the signal to variouspremises 102 in the vicinity (which may be many miles) of the localoffice 103. The links 101 may include components not illustrated, suchas splitters, filters, amplifiers, etc. to help convey the signalclearly, but in general each split introduces a bit of signaldegradation. Portions of the links 101 may also be implemented withfiber-optic cable, while other portions may be implemented with coaxialcable, other lines, or wireless communication paths. By running fiberoptic cable along some portions, for example, signal degradation may besignificantly minimized, allowing a single local office 103 to reacheven farther with its network of links 101 than before.

The local office 103 may include an interface, such as a terminationsystem (TS) 104. More specifically, the interface 104 may be a cablemodem termination system (CMTS), which may be one or more computingdevices configured to manage communications between devices on thenetwork of links 101 and backend devices such as servers 105-107 (to bediscussed further below). The interface 104 may be as specified in astandard, such as the Data Over Cable Service Interface Specification(DOCSIS) standard, published by Cable Television Laboratories, Inc.(a.k.a. CableLabs), or it may be a similar or modified device instead.The interface 104 may be configured to place data on one or moredownstream frequencies to be received by modems at the various premises102, and to receive upstream communications from those modems on one ormore upstream frequencies.

The local office 103 may also include one or more network interfaces108, which can permit the local office 103 to communicate with variousother external networks 109. These networks 109 may include, forexample, networks of Internet devices, telephone networks, cellulartelephone networks, fiber optic networks, local wireless networks (e.g.,WiMAX), satellite networks, and any other desired network, and thenetwork interface 108 may include the corresponding circuitry needed tocommunicate on the external networks 109, and to other devices on thenetwork such as a cellular telephone network and its corresponding cellphones.

As noted above, the local office 103 may include a variety of servers105-107 that may be configured to perform various functions. Forexample, the local office 103 may include a push notification server105. The push notification server 105 may generate push notifications todeliver data and/or commands to the various premises 102 in the network(or more specifically, to the devices in the premises 102 that areconfigured to detect such notifications). The local office 103 may alsoinclude a content server 106. The content server 106 may be one or morecomputing devices that are configured to provide content to users attheir premises. This content may be, for example, video on demandmovies, television programs, songs, text listings, etc. The contentserver 106 may include software to validate user identities andentitlements, to locate and retrieve requested content, to encrypt thecontent, and to initiate delivery (e.g., streaming) of the content tothe requesting user(s) and/or device(s).

The local office 103 may also include one or more application servers107. An application server 107 may be one or more computing devicesconfigured to offer any desired service, and may run various languagesand operating systems (e.g., servlets and JSP pages running onTomcat/MySQL, OSX, BSD, Ubuntu, Redhat, HTML5, JavaScript, AJAX andCOMET). For example, an application server may be responsible forcollecting television program listings information and generating a datadownload for electronic program guide listings. Another applicationserver may be responsible for monitoring user viewing habits andcollecting that information for use in selecting advertisements. Yetanother application server may be responsible for formatting andinserting advertisements in a video stream being transmitted to thepremises 102. Although shown separately, one of ordinary skill in theart will appreciate that the push server 105, content server 106, andapplication server 107 may be combined. Further, here the push server105, content server 106, and application server 107 are shown generally,and it will be understood that they may each contain memory storingcomputer executable instructions to cause a processor to perform stepsdescribed herein and/or memory for storing data.

An example premises 102 a, such as a home, may include an interface 120.The interface 120 can include any communication circuitry needed toallow a device to communicate on one or more links 101 with otherdevices in the network. For example, the interface 120 may include amodem 110, which may include transmitters and receivers used tocommunicate on the links 101 and with the local office 103. The modem110 may be, for example, a coaxial cable modem (for coaxial cable lines101), a fiber interface node (for fiber optic lines 101), twisted-pairtelephone modem, cellular telephone transceiver, satellite transceiver,local wi-fi router or access point, or any other desired modem device.Also, although only one modem is shown in FIG. 1, a plurality of modemsoperating in parallel may be implemented within the interface 120.Further, the interface 120 may include a gateway interface device 111.The modem 110 may be connected to, or be a part of, the gatewayinterface device 111. The gateway interface device 111 may be one ormore computing devices that communicate with the modem(s) 110 to allowone or more other devices in the premises 102 a, to communicate with thelocal office 103 and other devices beyond the local office 103. Thegateway 111 may be a set-top box (STB), digital video recorder (DVR),computer server, or any other desired computing device. The gateway 111may also include (not shown) local network interfaces to providecommunication signals to requesting entities/devices in the premises 102a, such as display devices 112 (e.g., televisions), additional STBs orDVRs 113, personal computers 114, laptop computers 115, wireless devices116 (e.g., wireless routers, wireless laptops, notebooks, tablets andnetbooks, cordless phones (e.g., Digital Enhanced CordlessTelephone—DECT phones), mobile phones, mobile televisions, personaldigital assistants (PDA), etc.), landline phones 117 (e.g., Voice overInternet Protocol—VoIP phones), and any other desired devices. Examplesof the local network interfaces include Multimedia Over Coax Alliance(MoCA) interfaces, Ethernet interfaces, universal serial bus (USB)interfaces, wireless interfaces (e.g., IEEE 802.11, IEEE 802.15), analogtwisted pair interfaces, Bluetooth interfaces, and others.

Having described an example communication network shown in FIG. 1 inwhich various features described herein may be implemented, an examplecomputing device as shown in FIG. 2 will be described.

FIG. 2 illustrates general hardware elements that can be used toimplement any of the various computing devices discussed herein. Thecomputing device 200 may include one or more processors 201, which mayexecute instructions of a computer program to perform any of thefeatures described herein. The instructions may be stored in any type ofcomputer-readable medium or memory, to configure the operation of theprocessor 201. For example, instructions may be stored in a read-onlymemory (ROM) 202, random access memory (RAM) 203, removable media 204,such as a Universal Serial Bus (USB) drive, compact disk (CD) or digitalversatile disk (DVD), floppy disk drive, or any other desired storagemedium. Instructions may also be stored in an attached (or internal)hard drive 205. The computing device 200 may include one or more outputdevices, such as a display 206 (e.g., an external television), and mayinclude one or more output device controllers 207, such as a videoprocessor. There may also be one or more user input devices 208, such asa remote control, keyboard, mouse, touch screen, microphone, camerainput for user gestures, etc. The computing device 200 may also includeone or more network interfaces, such as a network input/output (I/O)circuit 209 (e.g., a network card) to communicate with an externalnetwork 210. The network input/output circuit 209 may be a wiredinterface, wireless interface, or a combination of the two. In someembodiments, the network input/output circuit 209 may include a modem(e.g., a cable modem), and the external network 210 may include thecommunication links 101 discussed above, the external network 109, anin-home network, a provider's wireless, coaxial, fiber, or hybridfiber/coaxial distribution system (e.g., a DOCSIS network), or any otherdesired network. Additionally, in some embodiments the device mayinclude a location-detecting device, such as a global positioning system(GPS) microprocessor 211, which can be configured to receive and processglobal positioning signals and determine, with possible assistance froman external server and antenna, a geographic position of the device.

The FIG. 2 example is a hardware configuration, although the illustratedcomponents may be wholly or partially implemented as software as well.Modifications may be made to add, remove, combine, divide, etc.components of the computing device 200 as desired. Additionally, thecomponents illustrated may be implemented using basic computing devicesand components, and the same components (e.g., processor 201, ROMstorage 202, display 206, etc.) may be used to implement any of theother computing devices and components described herein. For example,the various components herein may be implemented using computing deviceshaving components such as a processor executing computer-executableinstructions stored on a computer-readable medium, as illustrated inFIG. 2. Some or all of the entities described herein may be softwarebased, and may co-exist in a common physical platform (e.g., arequesting entity can be a separate software process and program from adependent entity, both of which may be executed as software on a commoncomputing device).

One or more aspects of the disclosure may be embodied in acomputer-usable data and/or computer-executable instructions, such as inone or more program modules, executed by one or more computers or otherdevices. Generally, program modules include routines, programs, objects,components, data structures, etc. that perform particular tasks orimplement particular abstract data types when executed by a processor ina computer or other data processing device. The computer executableinstructions may be stored on one or more computer readable media suchas a hard disk, optical disk, removable storage media, solid statememory, RAM, etc. As will be appreciated by one of skill in the art, thefunctionality of the program modules may be combined or distributed asdesired in various embodiments. In addition, the functionality may beembodied in whole or in part in firmware or hardware equivalents such asintegrated circuits, field programmable gate arrays (FPGA), and thelike. Particular data structures may be used to more effectivelyimplement one or more aspects of the disclosure, and such datastructures are contemplated within the scope of computer executableinstructions and computer-usable data described herein.

In one illustrative embodiment, a device for controlling video such ascomputing device 200 and/or content server 106 may be configured toallow “trick-play mode” operations, such as jumping ahead or back a setamount of time (e.g., a five-minute jump), fast forward, fast rewind,movement of a location indicator of the video, etc.

In order to strike a balance between advertiser and user interests, itmay be desirable to store one or more indicators, such as time stampsand/or current time, using some predetermined action, such as whenrequired content (e.g., an advertisement) is completely watched atnormal or play speed. The timestamp or indicator may be used later todetermine how long it has been since the user watched required content.

For example, when a trick-play mode (e.g., jump-ahead) request is madeby the user, the computing device 200 and/or content server 106 maydetermine whether or not conditions are suitable for allowing the userto take the requested action. For example, the computing device and/orcontent server may determine a new indicator/timestamp (e.g., of thecurrent time), and compare the new indicator/timestamp to the previousindicator/timestamp to determine whether conditions warrant allowing therequested action. In other words, the computing device 200 and/orcontent server 106 may determine how much wall time has elapsed sincethe user watched an ad. The computing device 200 and/or content server106 may then compare the amount of wall time that has elapsed to someconfigurable threshold (e.g., 5 minutes). If the configurable thresholdis exceeded—that is, if it has been more than the threshold amount oftime since the user watched an ad—then the user may not be allowed tojump over the next segment of required content (e.g., the nextadvertisement). Alternatively, if the configurable threshold is notexceeded (e.g., it has been less than the threshold amount of time sincethe user watched an ad), then the user may be allowed to jump over thenext segment of required content. Thus, when the time is below thethreshold, the user may navigate to a different point in the programfreely without being shown advertisements.

Thus, a method may include receiving, by a computing device, a requestto skip a portion of required content, and allowing the computing deviceto skip the portion of required content based on a determination that aperiod of playing unrequired content is less than a threshold. Themethod may include tracking the period of playing the unrequiredcontent, wherein the period of playing the unrequired content includesan amount of time since some required content was played.

In some aspects, the amount of time since some required content wasplayed may include a sum playback time of a plurality of non-contiguoussegments of the unrequired content. The plurality of non-contiguoussegments of the unrequired content may include segments of at least twodifferent videos. In other words, a session may not be content specific.For example, a user may begin watching one program, then switch towatching a different program. The system may track the amount of timesince the user last viewed an advertisement independent of the program.Alternatively, the amount of time since the user last viewed anadvertisement may be relative to the program (e.g., when the userswitches to a different program, the timer may reset).

In one example, the user may be able to jump over required content,which would let the user string together a sequence and/or othertrick-play modes to move to a distant point in the program without beingshown advertisements.

In these examples, if the user spends time consuming program content,then the user may lose the ability to skip the next required contentusing, for example, trick-play mode.

In some embodiments, the system may increase the threshold based oninformation received from a user. For example, the user may be presentedon the user's remote control with an earned ad-skip button. The user maytake one or more actions to earn credits. For example, the user may earncredits by watching advertisements. The user may then use those creditsto skip over other advertisements. The user may also earn credits inother ways, such as paying higher subscription fees (e.g., a higher-costsubscription level includes a higher threshold, and a lower-costsubscription level includes a lower threshold), as part of a promotion,by completing surveys, by selecting advertisements of particularimportance, by achieving loyalty awards, by having many bundledservices, etc.

Thus, some aspects may include prompting the user to input informationabout the user, receiving the input information about the user, andtransmitting the input information about the user. In some aspects, theinformation received from the user may include information related to anadvertisement preference of the user. Some aspects may include selectingthe required content (e.g., advertisements) based on the advertisementpreference of the user. Some aspects may consider multiple advertisementpreferences of the user in selecting the required content.

The system may be configurable in a variety of ways. In someillustrative embodiments, if the user attempts to jump over severalsegments of required content, the computing device and/or content server106 (e.g., VOD server) may jump to the first segment of required contentor the segment of required content closest to the destination of thejump request. Alternatively, the computing device 200 and/or contentserver 106 could jump to the original requested destination afterplaying a segment of required content. In some embodiments, a user maybe offered a premium service that allows the user to purchase creditsthat allow the user to skip advertisements based on the level of theuser's service or other parameters.

Approaches in accordance with embodiments herein may be implementedusing timers, watchdog timers, timestamps, and/or other indicators.Required content may include conventional advertisements, placementadvertisements in video content (e.g., use of products by actors on aprogram). Additionally, the computing device and/or content server 106may require either all of the advertisement to play, or alternativelyfor at least part of the advertisement to finish playing before the useris permitted to skip the advertisement.

FIG. 3 illustrates one embodiment with respect to viewing time-shiftedcontent, such as video-on-demand (VOD) content. The disclosure hereinmay be applicable to any linear content, non-time-shifted content,video, radio, television, audio, or other content.

In step 301, the user may watch VOD content. The system may detect thetime that the user initiates the VOD session, and track the amount oftime that has elapsed since the user began watching VOD content. Thetracked amount of time may restart when the user changes VOD content,when the user turns off a device (e.g., television, set-top box, etc.),when a certain amount of time has elapsed since the user has providedany input (e.g., changed a channel, content, volume, etc.). The trackedamount of time may be based on a set time frame, such as a certainnumber of minutes, hours, days, etc. The tracked amount of time may bebased on who is present in the session (e.g., if a single user iswatching, and is later joined by another user, the tracked amount oftime may restart).

In step 302, the system may receive input from a user that includes arequest to engage a trick-play mode (e.g., skip ahead 5 minutes, fastforward, rewind, etc.) that would result in skipping over requiredcontent. For example, the system may receive input from the userincluding a request to jump ahead a set amount of time (e.g., a defaultamount of time the system always jumps ahead when the user presses ajump-ahead button), where the request to jump ahead the set amount oftime includes a request to skip at least a portion of required content(e.g., an advertisement).

In step 303, the system may determine how much time has elapsed sincethe user completed watching required content (e.g., an advertisement).

The system may compare the amount of time that has elapsed to athreshold amount of time. For example, a threshold amount of time may beeight minutes. If the amount of time since the user completed watchingrequired content is more than the threshold amount of time, then thesystem in step 304 may jump to one of the advertisements and play theadvertisement. If the amount of time since the user completed watchingan required content is less than the threshold amount of time, then thesystem in step 305 may allow the user to jump over the advertisement.

For example, the user may have begun watching VOD content, watched threeminutes of video, then attempted to fast forward to a different locationin the VOD content. If the VOD content includes an advertisement sevenminutes in, and the user continues to attempt to fast forward throughthe advertisement, then the system may compare the amount of time sincethe user has watched required content to the threshold amount of time(e.g., eight minutes). In this example, the system may detect that theuser just initiated a new VOD session three minutes earlier, which maybe treated the same as having watched an advertisement three minutesearlier. The system thus may allow the user to fast-forward through theadvertisement (or otherwise engage trick-play mode), because in thisexample the elapsed viewing time of three minutes is less than theexample threshold of eight minutes.

If the user then watches VOD content for another ten minutes, then againtries to engage trick-play mode (e.g., skip ahead five minutes over anadvertisement), the system may determine that because the user haswatched thirteen minutes of content (three minutes of content plus tenminutes of content) without viewing an advertisement, then the user maynot be allowed to skip over the required content (e.g., theadvertisement). In some aspects, the system may jump ahead an amount oftime different than a set amount of time (e.g., the amount of time theuser requested to jump ahead), and the amount of time different than theset amount of time may include an amount of time between currentlyplaying content (e.g., the user's current position) and the portion ofrequired content.

In some embodiments, the system may automatically detect when athreshold has been reached, and adjust a setting or functionality inresponse to the threshold being reached. For example, the system maycompare the threshold against the period of playing unrequired content(e.g., the amount of time elapsed since required content was played).The system may prevent skipping a portion of required content based on adetermination that the period of playing unrequired content is greaterthan the threshold. For example, if the threshold is eight minutes, wheneight minutes elapses since the user last viewed an advertisement, thesystem may automatically disable some or all trick-play functionality.For example, the system may disable jumping ahead in five-minuteincrements, but may still allow pause or fast forward. The system mayalso selectively disable some functionality. For example, the system mayallow trick-play modes, but only if those trick-play modes do not resultin skipping required content (e.g., an advertisement). For example, thesystem may allow a user to fast forward, but then disable the fastforward (resulting in resuming normal playback speed) when anadvertisement is reached.

Alternatively or additionally, the system may determine the amount oftime that has elapsed since the user last viewed an advertisement basedon the amount of content consumed. For example, if the user startsviewing content at 5:00 pm, watches five minutes of content, thenreceives a phone call and pauses playback for ten minutes, then the timewould be 5:15 pm. The system may determine—based on the user'sconsumption of five minutes of content—that five minutes have elapsedsince the user last watched an advertisement.

In another embodiment, the system may determine the amount of time thathas elapsed since the user last viewed an advertisement based on theamount of time that has elapsed. The time on a clock may be known aswall time (e.g., the time displayed on a clock on a wall). The systemmay determine whether a user is within a threshold based on the walltime. For example, if a user starts viewing content at 5:00 pm, watchesfive minutes of content, then receives a phone call and pauses playbackfor ten minutes, then the wall time would be 5:15 pm. The system maydetermine—based on the user's start time of 5:00 pm and the current timeof 5:15 pm—that fifteen minutes have elapsed since the user watched anadvertisement.

Alternatively or additionally, the user may be allowed or required toview required content in certain trick-play modes. For example, thesystem may allow the user to view an advertisement while fastforwarding, but not allow the user to skip ahead five minutes (which mayskip the advertisement completely). In one example, the system may takeinto account whether the user views required content atdifferent-than-normal playback speed. For example, the system may allowthe user another four minutes—or some other amount of time—for contentplayback if the user views an advertisement at fast speed.

After the user views required content in step 304, then the system timermay reset (e.g., a new timestamp may be created), and the user maycontinue viewing unrequired content (e.g., VOD content).

FIG. 4 provides one illustrative embodiment of a block/flow diagramrepresenting one implementation in accordance with embodiments herein.In the depicted embodiment, stream 402 may include unrequired content406 (e.g., a video program) and required content (e.g., advertisements414, 422, 430). Elapsed session playback time 404 may include the amountof time that has elapsed since the user began watching content. Notethat elapsed session playback time may not correspond to the playbackposition in stream 402. The system may include a threshold amount oftime within which a user is allowed to initiate trick-play mode beforeviewing an advertisement. For example, in the depicted embodiment, thethreshold may be seven minutes. In other examples, the threshold timemay be higher or lower, as discussed earlier, and may differ based on anumber of factors.

In one illustrative use scenario, a user may begin consuming content.For example, the content may play 408 for three minutes. After playingfor three minutes, the user may initiate a jump forward 410. In someaspects, the user may initiate some other type of trick-play mode (e.g.,fast forward). The jump forward 410 may include a jump overadvertisement 414. The system may determine that at the time the userrequested the jump forward 410, the elapsed session playback time was atthree minutes 412. The system may determine that because the elapsedsession playback time of three minutes 412 is less than the depictedthreshold time of seven minutes, the user may jump forward 410. /

The user may continue consuming content. For example, the content mayplay 416 for two minutes. After playing for two minutes, the user mayinitiate a jump forward 418. The jump forward 418 may include a jumpover advertisement 422. The system may determine that at the time theuser requested the jump forward 418, the elapsed session playback timeis at five minutes 420. The system may determine that because theelapsed session playback time of five minutes 420 is less than thedepicted threshold time of seven minutes, the user may jump forward 418.

The user may continue consuming content. For example, the content mayplay 424 for three minutes. After playing for three minutes, the usermay initiate a jump forward 426. The jump forward 426 may include a jumpover at least part of advertisement 420. The system may determine thatat the time the user requested the jump forward 426, the elapsed sessionplayback time is at eight minutes 428. The system may determine thatbecause the elapsed session playback time of eight minutes 428 isgreater than the depicted threshold time of seven minutes, the jumpforward 426 may jump to the beginning of advertisement 430. In otherwords, the jump forward 426 may jump to the beginning of advertisement430 instead of to the jump forward 426's original destination past atleast part of advertisement 430.

The user may then be required to view advertisement 430. After viewingadvertisement 430, the elapsed session playback time 404 may reset tozero, indicating the amount of time since the user last viewed anadvertisement. Alternatively, the system may mark a timestamp orindicator indicating the time at which the user last viewed anadvertisement. Then, the threshold time may be compared against the mostrecent timestamp or indicator indicating the time at which the user lastviewed an advertisement.

Thus, in one aspect, the system may determine an amount of time toadvance during playback of video content based on an amount of timeelapsed since an advertisement was played. Some aspects may includereceiving a require to advance the playback of the video content by arequested amount of time. Some aspects may include advancing theplayback of the video content the requested amount of time in responseto determining that the amount of time elapsed since an advertisementwas played is less than a threshold, and advancing the playback of thevideo content a different amount of time in response to determining thatthe amount of time elapsed since an advertisement was played is greaterthan a threshold. Some aspects may include increasing the threshold inresponse to receiving, from a user, information related to anadvertising preference of the user.

FIGS. 5A-C provide examples of code for implementing aspects of thedisclosure. The algorithm depicted in FIGS. 5A-C may be similar to theflow chart in FIG. 3 or the block/flow diagram in FIG. 4. Lines startingwith a # may be comments to assist in interpreting the examples of code.

FIG. 5A depicts examples of code for an example session setup. Onsession setup, the system may determine whether trick-play modes areenabled. For example, the system may determine if fast forward, jumpahead, or other trick-play modes are allowed. If trick-play modes arenot allowed, then the user may not be allowed to skip over requiredcontent (e.g., advertisements).

The system may, on session setup, create an initial timestamp of thelast time the user watched an advertisement. Since the session may bejust starting, the user may not have watched an advertisement, so thetimestamp may be the time the session began. The timestamp may beadjusted based on one or more factors (e.g., user's subscriptionprofile, user's participation in an incentive, the content, etc.).

FIG. 5B depicts examples of code for an example system response to atrick-play mode request. In the depicted example, the system may receivea user request to jump ahead. The system may determine if jumps aheadare allowed. If jumps ahead are not allowed, the system may reject thejump.

If jumps ahead are allowed, the system may determine if thecurrently-playing content is required content (e.g., an advertisement).If the currently-playing content is required content, the system maydetermine the amount of time since the user last watched anadvertisement by checking the timestamp of the last-viewedadvertisement. The system may compare the amount of time since the userlast watched an advertisement to a threshold amount of time. If the timesince the user last watched an advertisement is less than the threshold,the system may allow the jump ahead. If the amount of time since theuser last watched an advertisement is greater than the threshold, thesystem may reject the jump.

If the currently-playing content is not required content, the system maydetermine if the jump would result in jumping over at least a part ofrequired content. If the jump would result in jumping over requiredcontent, the system may determine the amount of time since the user lastwatched an advertisement by checking the timestamp of the last-viewedadvertisement. The system may compare the amount of time since the userlast watched an advertisement to a threshold amount of time. If the timesince the user last watched an advertisement is less than the threshold,the system may allow the jump ahead. If the amount of time since theuser last watched an advertisement is greater than the threshold, thesystem may adjust the jump so that the currently-playing content jumpsto the beginning of the next advertisement. If the jump would not resultin jumping over at least a part of required content, the system mayallow the jump.

FIG. 5C depicts examples of code for an example system response tocompleting playback of required content (e.g., an advertisement).

In the depicted embodiment, if the currently playing item is requiredcontent, then the system may determine if trick-play mode is allowed. Iftrick-play mode is allowed, then the system may determine whether thenext item queued for playback (e.g., after the end of the requiredcontent) is required content. If the next item queued for playback isnot required content, it may be unrequired content (e.g., VOD content).The system may then update the timestamp indicating the last time thatthe user completed watching an advertisement to indicate the time thatthe advertisement ended and unrequired content resumed.

The user may have requested a trick-play action before the requiredcontent began playing. For example, the user may have requested a jump,but have been required to watch an advertisement instead. After theadvertisement ends, the system may determine that the user had requesteda jump, and then honor the user's request and perform the jump.

In some aspects, a user may jump over certain advertisements while beingrequired to watch other advertisements.

In some aspects, the user may be given a visual indicator of the amountof time the user may skip over advertisements or other portions of videocontent. That is, in some aspects, the system may show a visualindicator of a threshold. In one example, a timestamp or other indicatormay be stored every time a user watches an advertisement at normalspeed. After a user watches an advertisement at a normal speed, a windowor other indicator may appear that indicates to the user how much timethe user has to fast forward or skip over advertisements. After the timeis up, the window or other indicator may disappear, or otherwiseindicate to the user that the user may no longer skip advertisements. Atthat point the user may not be able to fast forward throughadvertisements until the user has watched another advertisement.

In some aspects, the system may track the time elapsed since the userviewed an advertisement based on the amount of wall time elapsed sincethe program began playing.

In some aspects, the system may track an amount of time a user has spentwatching a program without advertisements in order to determine if orwhen the user is required to watch an advertisement. That is, the systemmay track the time since the user viewed an advertisement based on theamount of time content has played. For example, if a user actually onlywatches five minutes of a program during a twenty minute period (e.g.,because the user is fast forwarding, pausing, skipping sections ofcontent, etc.), then the system may determine when to require the userto view an advertisement based on program time consumed instead of walltime elapsed.

In some aspects, a user may have a larger free-pass period, andtherefore have more time to skip advertisements, based on a subscriptionfee or a higher tier of service. In some aspects, the free-pass periodmay be similar to or the same as the threshold. For example, if a userhas a basic cable subscription, the user may have a lower threshold timein between advertisements than a user that has a cable subscription withmany features.

In some aspects, a free-pass period (e.g., time period in which the usermay skip advertisements) may be dynamic. For example, a free-pass periodmay grow or shrink based on credits earned or used by a user. Forexample, there may be incentive options that allow a user to increasethe user's free-pass period, such as completing a customer survey, viewadvertisements, rate advertisements (e.g., like or dislike certainadvertisements), interact with (e.g., click on) interactiveadvertisements, select a category of advertisements the user is mostinterested in watching, etc. For example, if a user is interested incars, but not interested in puppies, the user may indicate that the useris interested in vehicles, but not interested in puppies. The user'sindication may be specific or general. For example, the user mayindicate that the user is interested in new vehicles, sport-utilityvehicles, cross-over vehicles, FORD vehicles, etc. Advertisementsdisplayed to the user may then be filtered or targeted according to theuser's indicated preferences. For example, the system may detect that apuppy advertisement is scheduled to play, and may replace the puppyadvertisement with a sport-utility vehicle advertisement instead.Additionally, the user may, as a reward or incentive for providinginformation about the types of advertisements that the user isinterested in, receive one or more credits. The user's credits mayincrease the user's free-pass period.

In some aspects, the user may be provided with a choice between multipleadvertisements when the advertisement period begins. If the user doesnot select an advertisement within a set period of time (e.g., threeseconds), the system may automatically play one or more of theadvertisements. The system may track the user's selected advertisements,and learn from the user's selections. For example, if the userconsistently selects to view vehicle advertisements, and the userconsistently does not select to view advertisements with puppies, thesystem may determine that the user is interested in vehicles and not inpuppies, and target future advertisements accordingly.

Some aspects may include receiving, by a computing device, a request toskip a portion of currently playing video, determining an amount of timethat the currently playing video has been playing since a most-recentadvertisement was played, if the amount of time that the currentlyplaying video has been playing since the most-recent advertisement wasplayed is greater than a threshold, requiring playback of anotheradvertisement before allowing the skip of the portion of currentlyplaying video, and if the amount of time that the currently playingvideo has been playing since the most-recent advertisement was played isless than the threshold, allowing the skip of the portion of thecurrently playing video.

In some aspects, the amount of time that the currently playing video hasbeen playing since a most-recent advertisement was played may include asum amount of playback time of a plurality of segments of the currentlyplaying video. Some aspects may include disabling trick-play modeoperations if the amount of time that the currently playing video hasbeen playing since the most-recent advertisement was played is greaterthan the threshold, and enabling trick-play mode operations afterplaying another advertisement.

Aspects of the disclosure have been described in terms of illustrativeembodiments thereof. While illustrative systems and methods as describedherein embodying various aspects of the present disclosure are shown, itwill be understood by those skilled in the art, that the disclosure isnot limited to these embodiments. Modifications may be made by thoseskilled in the art, particularly in light of the foregoing teachings.For example, each of the features of the aforementioned illustrativeexamples may be utilized alone or in combination or subcombination withelements of the other examples. For example, any of the above describedsystems and methods or parts thereof may be combined with the othermethods and systems or parts thereof described above. For example, oneof ordinary skill in the art will appreciate that the steps illustratedin the illustrative figures may be performed in other than the recitedorder, and that one or more steps illustrated may be optional inaccordance with aspects of the disclosure. It will also be appreciatedand understood that modifications may be made without departing from thetrue spirit and scope of the present disclosure. The description is thusto be regarded as illustrative instead of restrictive on the presentdisclosure.

It is noted that various connections are set forth between elements inthe following description. These connections are described in generaland, unless specified otherwise, may be direct or indirect; thisspecification is not intended to be limiting in this respect.

What is claimed is:
 1. A method comprising: receiving, by a computingdevice, a request to skip a portion of required content; and allowingthe computing device to skip the portion of required content based on adetermination that a period of playing unrequired content is less than athreshold.
 2. The method of claim 1, comprising: tracking the period ofplaying the unrequired content, wherein the period of playing theunrequired content comprises an amount of time since some requiredcontent was played.
 3. The method of claim 2, wherein the amount of timesince some required content was played comprises a sum playback time ofa plurality of non-contiguous segments of the unrequired content.
 4. Themethod of claim 3, wherein the plurality of non-contiguous segments ofthe unrequired content comprise segments of at least two differentvideos.
 5. The method of claim 1, comprising: increasing the thresholdbased on information received from a user.
 6. The method of claim 5,comprising: prompting the user to input information about the user;receiving the input information about the user; and transmitting theinput information about the user.
 7. The method of claim 6, wherein theinformation received from the user comprises information related to anadvertisement preference of the user.
 8. The method of claim 7,comprising: selecting the required content based on the advertisementpreference of the user.
 9. The method of claim 1, comprising: settingthe threshold based on a subscription level of a user associated withthe computing device.
 10. The method of claim 9, wherein a firstsubscription level comprises a higher threshold, and a secondsubscription level comprises a lower threshold.
 11. The method of claim1, wherein a request to jump ahead a set amount of time comprises therequest to skip the portion of the required content.
 12. The method ofclaim 11, comprising: jumping ahead an amount of time different than theset amount of time, wherein the amount of time different than the setamount of time comprises an amount of time between currently playingcontent and the portion of required content.
 13. The method of claim 1,comprising: preventing the computing device from skipping the portion ofrequired content based on a determination that the period of playingunrequired content is greater than the threshold.
 14. A methodcomprising: determining an amount of time to advance during playback ofvideo content based on an amount of time elapsed since an advertisementwas played.
 15. The method of claim 14, comprising: receiving a requestto advance the playback of the video content by a requested amount oftime.
 16. The method of claim 15, comprising: advancing the playback ofthe video content the requested amount of time in response todetermining that the amount of time elapsed since an advertisement wasplayed is less than a threshold; and advancing the playback of the videocontent a different amount of time in response to determining that theamount of time elapsed since an advertisement was played is greater thana threshold.
 17. The method of claim 16, comprising: increasing thethreshold in response to receiving, from a user, information related toan advertising preference of the user.
 18. A method comprising:receiving, by a computing device, a request to skip a portion ofcurrently playing video; determining an amount of time that thecurrently playing video has been playing since a most-recentadvertisement was played; if the amount of time that the currentlyplaying video has been playing since the most-recent advertisement wasplayed is greater than a threshold, requiring playback of anotheradvertisement before allowing the skip of the portion of currentlyplaying video; and if the amount of time that the currently playingvideo has been playing since the most-recent advertisement was played isless than the threshold, allowing the skip of the portion of thecurrently playing video.
 19. The method of claim 18, wherein the amountof time that the currently playing video has been playing since amost-recent advertisement was played comprises a sum amount of playbacktime of a plurality of segments of the currently playing video.
 20. Themethod of claim 18, comprising: disabling trick-play mode operations ifthe amount of time that the currently playing video has been playingsince the most-recent advertisement was played is greater than thethreshold; and enabling trick-play mode operations after playing anotheradvertisement.